import { SimJobStatus, SimulationResult, SimulationSpec } from '../type';

export interface SimulationJobDto {
  id?: number;
  product: string;
  desc: string;
  businessId: string;
  status: SimJobStatus;
  agentId: string; // agent identity
  userId: string;
  appId: string;
  nodeId: string;
  debug: boolean;
  notificationCallback: string;
  spec: SimulationSpec;
  result: SimulationResult;
  message: string;
  submitAt: Date;
  startedAt: Date;
  finishedAt: Date;
  progress?: number;
  type?: string;
  subJobIds?: number[];
  parentId?: number;
}

export interface SimulationJobPageQuery {
  currentPage: number;
  pageSize: number;
  userId: string;
  appId: string;
  nodeId: string;
  businessId?: string;
  statuses?: string[];
  startTime?: string;
  endTime?: string;
}

export interface AgentSimulationJobCount {
  identity: string;
  status: string;
  count: number;
}
